package com.guomei.service.curse;

import com.guomei.bean.curse.CourseVideo;
import com.guomei.utils.Result;

import java.util.List;

/**
 * 课程视频表Service接口
 *
 * @author yourname
 * @date 2025-08-22
 */
public interface CourseVideoService {
    /**
     * 根据ID查询课程视频
     *
     * @param id 视频ID
     * @return 课程视频实体
     */
    CourseVideo getById(Long id);

    /**
     * 根据课程ID查询视频列表
     *
     * @param courseId 课程ID
     * @return 视频列表
     */
    List<CourseVideo> getByCourseId(Long courseId);

    /**
     * 根据章节ID查询视频列表
     *
     * @param chapterId 章节ID
     * @return 视频列表
     */
    List<CourseVideo> getByChapterId(Long chapterId);

    /**
     * 新增课程视频
     *
     * @param courseVideo 课程视频实体
     * @return 新增结果
     */
    boolean save(CourseVideo courseVideo);

    /**
     * 修改课程视频
     *
     * @param courseVideo 课程视频实体
     * @return 修改结果
     */
    boolean update(CourseVideo courseVideo);

    /**
     * 根据ID删除课程视频
     *
     * @param id 视频ID
     * @return 删除结果
     */
    boolean removeById(Long id);

    /**
     * 根据课程ID删除视频
     *
     * @param courseId 课程ID
     * @return 删除结果
     */
    boolean removeByCourseId(Long courseId);

    /**
     * 查询视频详细信息（包含课程和章节的全部字段）
     * @param courseVideo
     * @return 视频详细信息列表
     */
    Result<?> listDetail(CourseVideo courseVideo);

    /**
     * 根据ID列表查询视频详细信息（包含课程和章节的全部字段）
     * @param ids 视频ID列表
     * @return 视频详细信息列表
     */
    Result<?> listDetailByIds(List<Long> ids);
}
